import java.util.Arrays;
import java.util.Iterator;

public class 冒泡排序 {
	// 思想：每一轮循环找到一个最大值放到未排序的最后面
	public static void main(String[] args) {
		int[] arr = { 12, 34, 4, 1,-3,5,0,19 };
		System.out.println(Arrays.toString(arr));
		buddle(arr);
		System.out.println(Arrays.toString(arr));
	}

	static void buddle(int[] arr) {
		//比较的次数
//		for (int i = 0; i < arr.length-1; i++) {
//			int maxIndex = 0;
//			for (int j = 0; j < arr.length - i; j++) {
//				if (arr[j] > arr[maxIndex]) {
//					maxIndex = j;
//				}
//			}
//			swap(arr, maxIndex, arr.length - 1 - i);
//		}
		
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr.length-1; j++) {
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
		
		
		// 第一轮 找最大值放大length - 1
//		int maxIndex = 0;
//		for (int j = 1; j < arr.length - 0; j++) {
//			if (arr[j] > arr[maxIndex]) {
//				maxIndex = j;
//			}
//		}
//		swap(arr, maxIndex, arr.length - 1 - 0);
//
//		// 第二轮 找最大值放大length - 1
//		maxIndex = 0;
//		for (int j = 1; j < arr.length - 1; j++) {
//			if (arr[j] > arr[maxIndex]) {
//				maxIndex = j;
//			}
//		}
//		swap(arr, maxIndex, arr.length - 1 - 1);
//
//		// 第三轮 找最大值放大length - 1
//		maxIndex = 0;
//		for (int j = 1; j < arr.length - 2; j++) {
//			if (arr[j] > arr[maxIndex]) {
//				maxIndex = j;
//			}
//		}
//		swap(arr, maxIndex, arr.length - 1 - 2);

	}

	static void swap(int[] arr, int i, int j) {
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;

	}

}
